#ifndef MAINPAGE_H
#define MAINPAGE_H

#include "common.h"
#include <QPainter>
#include <QWidget>
#include "netserver.h"

QT_BEGIN_NAMESPACE
namespace Ui { class Mainpage; }
QT_END_NAMESPACE

class Mainpage : public QWidget
{
    Q_OBJECT

public:
    Mainpage(QWidget *parent = nullptr);
    ~Mainpage();

protected:
    //事件过滤器，重写stackWidget中的绘图事件
    bool eventFilter(QObject *obj,QEvent *event);

    void drawCarId(QPainter &painter, QPoint pos, int id);
private slots:
    //获取路口状态 return true可通|false不可通
    void slot_getCrossState(const int &road_id,bool &ok);

    void on_psbt_exit_clicked();

    //添加小车
    void slot_addCar(const int &id);
    void slot_updateCar(const int &id,const int &road_id,
                           const float &duration);

    void on_psbt_lkkz_clicked();

    void on_psbt_dwxx_clicked();

    void on_psbt_clkzxx_clicked();


    void on_psbt_zhxx_clicked();


    void on_start_clicked();

    void on_stop_clicked();

    void SendGetCrossState();
    void on_psbt_lkxx_clicked();

    void on_pushButton_clicked();

    void on_psbt_dlxx_clicked();

private:
    //初始化道路信息
    void initRoad();

    void initCross();

    void initCar();
    void initNet();

    bool showCar{true};
    bool showCross{true};
    bool showRoad{true};

    Ui::Mainpage *ui;
    //保存道路信息的容器
    QList<Road> list_road;
    QList<Cross>list_cross;
    QList<Car> list_car;

    NetServer ns;//NetServer对象


};
#endif // MAINPAGE_H
